#!/usr/bin/python3
# -*- coding: utf-8 -*-

# Python算术运算符
print('Python算术运算符')

a, b = 5, 2
print(a + b)	# 加
print(a - b)	# 减
print(a * b)	# 乘
print(a / b)	# 除
print(a % b)	# 取模
print(a ** b)	# 幂 - 返回x的y次幂
print(a // b)	# 取整除 - 向下取接近除数的整数
print()


# Python比较运算符
print('Python比较运算符')

a, b = 1, 2
print(a == b)	# 等于 - 比较对象是否相等
print(a != b)	# 不等于 - 比较两个对象是否不相等
print(a > b)	# 大于 - 返回x是否大于y
print(a < b)	# 小于 - 返回x是否小于y
print(a >= b)	# 大于等于 - 返回x是否大于等于y
print(a <= b)	# 小于等于 - 返回x是否小于等于y
print()


# Python赋值运算符
print('Python赋值运算符')

'''
以下假设变量a为1，变量b为2，变量c为3：
=	简单的赋值运算符	c = a + b 将 a + b 的运算结果赋值为 c
+=	加法赋值运算符	c += a 等效于 c = c + a
-=	减法赋值运算符	c -= a 等效于 c = c - a
*=	乘法赋值运算符	c *= a 等效于 c = c * a
/=	除法赋值运算符	c /= a 等效于 c = c / a
%=	取模赋值运算符	c %= a 等效于 c = c % a
**=	幂赋值运算符		c **= a 等效于 c = c ** a
//=	取整除赋值运算符	c //= a 等效于 c = c // a
'''
print()


# Python位运算符
print('Python位运算符')

a = 0b00111100 #二进制数 60
b = 0b00001101 #二进制数 13

print(a & b)	# &  按位与运算符：参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
print(a | b)	# |  按位或运算符：只要对应的二个二进位有一个为1时，结果位就为1。
print(a ^ b)	# ^  按位异或运算符：当两对应的二进位相异时，结果为1
print(~ a)		# ~  按位取反运算符：对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1
print(a << 2)	# << 左移动运算符：运算数的各二进位全部左移若干位，由"<<"右边的数指定移动的位数，高位丢弃，低位补0。
print(a >> 2)	# >> 右移动运算符：把">>"左边的运算数的各二进位全部右移若干位，">>"右边的数指定移动的位数
print()


# Python逻辑运算符
print('Python逻辑运算符')

a, b = 10, 20
print(a and b)		# x and y  布尔"与" - 如果 x 为 False，x and y 返回 False，否则它返回 y 的计算值。
print(a or b)		# x or  y  布尔"或" - 如果 x 是 True，它返回 x 的值，否则它返回 y 的计算值。
print(not(a and b))	# x not y  布尔"非" - 如果 x 为 True，返回 False 。如果 x 为 False，它返回 True。
print()


# Python成员运算符
print('Python成员运算符')

a, b, list, tuple, jihe, dict  = 10, 2, [1,2,3,4,5], (1,2,3,4,5), {'a','a',1,2,1}, {1:1,2:2,3:3,'a':'b'}

# 列表 同php数组(只能是数字下标)
# 元祖 同列表,不同之处在于元组的元素不能修改。
# 集合 重复的元素被自动去掉
# 字典 同php数组 必须键值对

print(list)  			# 如果在指定的序列中找到值返回 True，否则返回 False。
print(a not in list)	# 如果在指定的序列中没有找到值返回 True，否则返回 False。

print(tuple)
print(b not in tuple)

print(jihe)
print(b in jihe)

print(dict)
print(b in dict)
print()

